package com.battery.system.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.battery.common.annotation.Excel;
import tk.mybatis.mapper.annotation.KeySql;

import javax.persistence.Id;
import javax.persistence.Table;

/**
 * 门店信息对象 ws_store
 *
 * @author battery
 * @date 2021-01-22
 */
@Table(name = "ws_store")
public class Store {
    private static final long serialVersionUID = 1L;

    /**
     *
     */
    @Id
    @KeySql(useGeneratedKeys = true)
    private String id;

    /**
     * 门店编码
     */
    @Excel(name = "门店编码")
    private String storeSn;

    /**
     * 门店名称
     */
    @Excel(name = "门店名称")
    private String storeName;

    /**
     * 门店状态 0 未部署 1 已部署
     */
    @Excel(name = "门店状态 0 未部署 1 已部署")
    private Integer devDeploy;

    /**
     * 所在地区
     */
    @Excel(name = "所在地区")
    private String location;

    /**
     * 详细地址
     */
    @Excel(name = "详细地址")
    private String detailAddress;

    /**
     * 门店品类
     */
    @Excel(name = "门店品类")
    private Long siteId;

    /**
     * 是否为连锁店 0 否 1 是
     */
    @Excel(name = "是否为连锁店 0 否 1 是")
    private Integer isChain;

    /**
     * 人均消费
     */
    @Excel(name = "人均消费")
    private BigDecimal perConsume;

    /**
     * 签约时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "签约时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date signingTime;

    /**
     * 门头照片
     */
    @Excel(name = "门头照片")
    private String doorPhoto;

    /**
     * 门店联系人类型 1 老板 2 店长 3 店员
     */
    @Excel(name = "门店联系人类型 1 老板 2 店长 3 店员")
    private Integer storeContactsType;

    /**
     * 门店联系人姓名
     */
    @Excel(name = "门店联系人姓名")
    private String storeContactsName;

    /**
     * 门店联系人手机号
     */
    @Excel(name = "门店联系人手机号")
    private String storeContactsPhone;

    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remarks;

    /**
     * 是否删除
     */
    @Excel(name = "是否删除")
    private Integer isDelete;

    /**
     * 直营合作商ID
     */
    @Excel(name = "直营合作商ID")
    private String partnerId;

    /**
     * 平台ID
     */
    @Excel(name = "平台ID")
    private String projectId;

    /**
     * 商户ID
     */
    @Excel(name = "商户ID")
    private String merchantId;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;


    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;


    private BigDecimal longitude;

    private BigDecimal latitude;


    public void setId(String id) {
        this.id = id;
    }

    public String getId() {
        return id;
    }

    public void setStoreSn(String storeSn) {
        this.storeSn = storeSn;
    }

    public String getStoreSn() {
        return storeSn;
    }

    public void setStoreName(String storeName) {
        this.storeName = storeName;
    }

    public String getStoreName() {
        return storeName;
    }

    public void setDevDeploy(Integer devDeploy) {
        this.devDeploy = devDeploy;
    }

    public Integer getDevDeploy() {
        return devDeploy;
    }

    public void setLocation(String location) {
        this.location = location;
    }

    public String getLocation() {
        return location;
    }

    public void setDetailAddress(String detailAddress) {
        this.detailAddress = detailAddress;
    }

    public String getDetailAddress() {
        return detailAddress;
    }

    public void setSiteId(Long siteId) {
        this.siteId = siteId;
    }

    public Long getSiteId() {
        return siteId;
    }

    public void setIsChain(Integer isChain) {
        this.isChain = isChain;
    }

    public Integer getIsChain() {
        return isChain;
    }

    public void setPerConsume(BigDecimal perConsume) {
        this.perConsume = perConsume;
    }

    public BigDecimal getPerConsume() {
        return perConsume;
    }

    public void setSigningTime(Date signingTime) {
        this.signingTime = signingTime;
    }

    public Date getSigningTime() {
        return signingTime;
    }

    public void setDoorPhoto(String doorPhoto) {
        this.doorPhoto = doorPhoto;
    }

    public String getDoorPhoto() {
        return doorPhoto;
    }

    public void setStoreContactsType(Integer storeContactsType) {
        this.storeContactsType = storeContactsType;
    }

    public Integer getStoreContactsType() {
        return storeContactsType;
    }

    public void setStoreContactsName(String storeContactsName) {
        this.storeContactsName = storeContactsName;
    }

    public String getStoreContactsName() {
        return storeContactsName;
    }

    public void setStoreContactsPhone(String storeContactsPhone) {
        this.storeContactsPhone = storeContactsPhone;
    }

    public String getStoreContactsPhone() {
        return storeContactsPhone;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setIsDelete(Integer isDelete) {
        this.isDelete = isDelete;
    }

    public Integer getIsDelete() {
        return isDelete;
    }

    public void setPartnerId(String partnerId) {
        this.partnerId = partnerId;
    }

    public String getPartnerId() {
        return partnerId;
    }

    public void setProjectId(String projectId) {
        this.projectId = projectId;
    }

    public String getProjectId() {
        return projectId;
    }

    public void setMerchantId(String merchantId) {
        this.merchantId = merchantId;
    }

    public String getMerchantId() {
        return merchantId;
    }


    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }


    public BigDecimal getLongitude() {
        return longitude;
    }

    public void setLongitude(BigDecimal longitude) {
        this.longitude = longitude;
    }

    public BigDecimal getLatitude() {
        return latitude;
    }

    public void setLatitude(BigDecimal latitude) {
        this.latitude = latitude;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("storeSn", getStoreSn())
                .append("storeName", getStoreName())
                .append("devDeploy", getDevDeploy())
                .append("location", getLocation())
                .append("detailAddress", getDetailAddress())
                .append("siteId", getSiteId())
                .append("isChain", getIsChain())
                .append("perConsume", getPerConsume())
                .append("createTime", getCreateTime())
                .append("signingTime", getSigningTime())
                .append("doorPhoto", getDoorPhoto())
                .append("storeContactsType", getStoreContactsType())
                .append("storeContactsName", getStoreContactsName())
                .append("storeContactsPhone", getStoreContactsPhone())
                .append("updateTime", getUpdateTime())
                .append("remarks", getRemarks())
                .append("isDelete", getIsDelete())
                .append("partnerId", getPartnerId())
                .append("projectId", getProjectId())
                .append("merchantId", getMerchantId())
                .toString();
    }
}
